package com.polaris.live.common.constant

import androidx.annotation.IntDef

/**
 * 整个App用到的常量
 *
 * @author Created by 半仙 on 2023/8/2/002 13:56
 */
object AppConst {

    //google ID
    const val googleId = ""

    //后缀
    private const val suffix = "/user/"

    //充值接口后缀
    private const val payerSuffix = "/payer/"

    //直播接口后缀
    private const val liveSuffix = "/live/"

    //主页服务接口后缀
    private const val homeSuffix = "/home/"

    //状态服务接口后缀
    private const val stateSuffix = "/state/"

    //聊天服务接口后缀
    private const val chatSuffix = "/chat/"

    //推送服务接口后缀
    private const val pusherSuffix = "/pusher/"

    //推送服务接口后缀
    private const val gameSuffix = "/game/"

    //推送服务接口后缀
    private const val actSuffix = "/act/"

    //网络请求地址  用户
    val userUrl: String
        get() = ServerConfig.getServerUrl() + suffix

    //网络请求地址  支付
    val payerUrl: String
        get() = ServerConfig.getServerUrl() + payerSuffix

    //网络请求地址  直播
    val liveUrl: String
        get() = ServerConfig.getServerUrl() + liveSuffix

    //网络请求地址    主页
    val homeUrl: String
        get() = ServerConfig.getServerUrl() + homeSuffix

    //网络请求地址    状态
    val stateUrl: String
        get() = ServerConfig.getServerUrl() + stateSuffix

    //网络请求地址    聊天
    val chatUrl: String
        get() = ServerConfig.getServerUrl() + chatSuffix

    //网络请求地址    推送
    val pusherUrl: String
        get() = ServerConfig.getServerUrl() + pusherSuffix

    //网络请求地址    游戏
    val gameUrl: String
        get() = ServerConfig.getServerUrl() + gameSuffix

    //网络请求地址    活动
    val actUrl: String
        get() = ServerConfig.getServerUrl() + actSuffix

    //domain Url的地址
    val domainUrls: Set<String>
        get() = ServerConfig.getServerMode().domains

    /**
     * 0否  1是
     */
    const val NO = 0
    const val YES = 1

    const val NOLONG = 0L
    const val YESLONG = 1L

    /**
     * 登录注册 的 类型
     */
    object LoginType {

        const val REGISTERED = 0                //注册
        const val LOGIN = 1                     //登录
        const val REVISE = 2                    //修改密码(登录后用修改密码)
        const val BACK = 3                      //找回密码(没登录用找回密码)
        const val BIND = 4                      //绑定手机
    }

    /**
     * 用户登录类型
     */
    object UserLoginType {

        const val PHONE = 0                     //手机登录
        const val GOOGLE = 1                    //google登录
        const val PASSWORD = 3                  //密码登录
        const val FACEBOOK = 4                  //facebook登录
        const val GMAIL = 5                     // gmail登录
        const val DEVICE = 6                    //设备登录

    }

    /**
     * 用户密码登录类型
     */
    object UserPwdType {

        const val PASSWORD = 0                  //密码登录
        const val FIND_PASSWORD = 1             //验证码密码登录，设置密码与忘记密码

    }

    /**
     * 上传图片的类型
     */
    object UpLoad {

        const val MESSAGE_IMAGE = 0             //聊天图片
        const val USER_HEAD = 1                 //用户头像
        const val COVER_PHOTO = 2               //封面照
        const val ALBUM = 3                     //相册
        const val FEEDBACK_SUGGESTION = 4       //反馈与建议
        const val APPEAL = 5                    //账号申述
        const val FACE = 6                      //直播人脸截图上传
        const val MESSAGE_GREET = 7             //打招呼模板
        const val COMMUNITY = 8                 //社区
        const val ROOM_BANCGROUDN_DIY = 9       //上传房间背景照
        const val CALL_SCREENSHOT = 10          //通话截图
        const val LIVE_SCREENSHOT = 11          //直播截图
        const val PARTY_COVER_PHOTO = 12        //派对封面
        const val GAME_COVER_PHOTO = 13         //游戏封面
        const val VIDEO_PARTY_SCREENSHOT = 14   //游戏房截图

        @IntDef(
            MESSAGE_IMAGE,
            USER_HEAD,
            COVER_PHOTO,
            ALBUM,
            FEEDBACK_SUGGESTION,
            APPEAL,
            FACE,
            MESSAGE_GREET,
            COMMUNITY,
            CALL_SCREENSHOT,
            LIVE_SCREENSHOT,
            PARTY_COVER_PHOTO,
            GAME_COVER_PHOTO
        )
        annotation class UploadType
    }

    //为点击时置灰
    const val NOTCLICK = 0.3f

    //用户性别
    object UserSex {

        const val WOMAN = 1                     // 女性
        const val MAN = 2                       // 男性
        const val NONE = 0                     // 没有性别默认男性
    }

    //应用类型
    const val APP_TYPE = 5

    //平台类型
    const val PLATFORM_TYPE = 0

    //马甲类型
    const val VARIANT_TYPE = 0

    //默认每次加载多少条消息数据
    const val PAGE_SIZE = 20

    //礼物来源
    object GiftComming {

        const val LIVE = 1                      //直播
        const val CALL = 2                      //通话
        const val SINGLE = 3                    //私聊
        const val CALL_MAN_SHORTCUT = 4         //通话快捷男
        const val CALL_WOMAN_SHORTCUT = 5       //通话快捷女
        const val PARTY = 6                     //派对礼物
        const val GAME = 7                      //游戏礼物
    }

    object BackpackGiftComming {
        const val MESSAGE = 0                   //私聊
        const val LIVE = 1                      //直播间
        const val CALL = 2                      //通话
        const val PARTY = 3                     //派对
        const val PARTY_GAME = 4                //游戏
    }

    //封面照状态
    object CoverPhoto {

        const val UNDER_REVIEW = 0             //审核中
        const val APPROVED = 1                 //审核通过
        const val REVIEW_NOT = 2               //审核拒绝
        const val ISREADYUP = 8                //待提交
        const val REVIEWING = 9                //机审中
    }

    //美型常量
    object DeformType {

        const val DEFORM = 400010L              // 我是美"型"的type

        const val SHOULIAN = 400011      //瘦脸
        const val DAYAN = 400012         //大眼
        const val YANJINGWEIZHI = 400013 //眼睛位置
        const val FAJIXIAN = 400014      //发际线
        const val XIABA = 400015         //下巴
        const val SHOUBI = 400016        //瘦鼻
        const val BICHANG = 400017       //鼻长
        const val ZUIXING = 400018       //嘴型

        //美型参数默认值
        const val DEFAULT_SHOULIAN = 30
        const val DEFAULT_DAYAN = 40
        const val DEFAULT_YANJINGWEIZHI = 50
        const val DEFAULT_FAJIXIAN = 30
        const val DEFAULT_XIABA = 30
        const val DEFAULT_SHOUBI = 50
        const val DEFAULT_BICHANG = 50
        const val DEFAULT_ZUIXING = 40
    }

    //美颜常量
    object Beautify {

        const val BEAUTIFY = 400110L            // 我是美"颜"的type

        const val MEIBAI = 400111        //美白
        const val MOPI = 400112          //磨皮
        const val QINGXI = 400113        //清晰
        const val BAIYA = 400114         //白牙
        const val LIANGYAN = 400115      //亮眼

        //美颜参数默认值
        const val DEFAULT_MEIBAI = 30
        const val DEFAULT_MOPI = 70
        const val DEFAULT_QINGXI = 30
        const val DEFAULT_BAIYA = 28
        const val DEFAULT_LIANGYAN = 25
    }

    //滤镜常量
    object BeautifyFilter {

        const val FILTER = 400210L              // 我是"滤镜"的type
    }
    /**
     * vip说明
     */
    object VipDescription {
        const val suffix = "static/app/index.html#/vipInfo"
    }
    //客服后缀
    object Customer {

        const val suffix = "static/app/index.html#/help"
    }

    //游戏类型
    object GameType{

        const val SELF_DEVELOPED = 0L        //自研
        const val BAI_SHUN = 1L              //百顺
        const val ZEGO = 2L                  //既构
        const val YOMI = 3L                  //yomi
    }
}